package com.example.lottery.common.utils;

import cn.hutool.captcha.LineCaptcha;
import cn.hutool.captcha.generator.RandomGenerator;

public class CaptchaUtil {
    public static String getCaptcha(int length) {
        // 自定义纯数字的验证码（随机指定位数数字，可重复）


        // 1. 创建自定义的随机生成器（核心配置）
        RandomGenerator randomGenerator = new RandomGenerator("0123456789", length);
        //   - 字符集: "0123456789" → 只生成数字验证码（不含字母）
        //   - 长度: 使用参数 length → 生成指定位数的验证码

        // 2. 创建基础的线干扰验证码对象（Hutool内置方法）
        LineCaptcha lineCaptcha = cn.hutool.captcha.CaptchaUtil.createLineCaptcha(200, 100);
        //   - 200: 验证码图片宽度(像素)
        //   - 100: 验证码图片高度(像素)
        //   - 此时生成的验证码默认包含字母+数字

        // 3. 替换验证码生成器（关键步骤）
        lineCaptcha.setGenerator(randomGenerator);
        //   - 将默认的字母+数字生成器替换为自定义的纯数字生成器

        // 4. 重新生成验证码
        lineCaptcha.createCode();
        //   - 使用自定义的 randomGenerator 重新生成验证码
        //   - 此时生成的验证码变为纯数字

        // 5. 返回生成的验证码字符串
        return lineCaptcha.getCode();
    }
}
